package oss

import (
	"bytes"
	"fmt"
	"ginblog/errmsg"
	"ginblog/utils"
	"github.com/aliyun/aliyun-oss-go-sdk/oss"
	"io/ioutil"
	"mime/multipart"
	"os"
	"path/filepath"
)

var AccessKey = utils.AccessKeyIdAli
var SecretKey = utils.AccessKeySecretAli
var Bucket = utils.BucketNameAli
var Endpoint = utils.EndpointAli

func UploadAli(file *multipart.FileHeader) int {
	// 打开上传的文件
	src, err := file.Open()
	if err != nil {
		return errmsg.ERROR
	}
	defer src.Close()

	// 读取文件内容到内存中
	fileContent, err := ioutil.ReadAll(src)
	if err != nil {
		return errmsg.ERROR
	}
	client, err := oss.New(Endpoint, AccessKey, SecretKey)
	if err != nil {
		return errmsg.ERROR
	}
	// 填写存储空间名称，例如examplebucket。
	bucket, err := client.Bucket(Bucket)
	if err != nil {
		return errmsg.ERROR
	}
	fileName := filepath.Base(file.Filename)
	// 依次填写Object的完整路径（例如exampledir/exampleobject.txt）和本地文件的完整路径（例如D:\\localpath\\examplefile.txt）。
	err = bucket.PutObject(fileName, bytes.NewReader(fileContent))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	return errmsg.SUCCESS
}
